package regex;

/*
 * 判断一个字符串是否是手机字符串
 * "13534931778"
 * 手机号的规则:“规则”
 *   0.手机号的长度必须是11位
 *   1.手机号的第一位必须是1
 *   2.手机号的第二位:3或4或5或7或8
 *   3.手机号的剩余九位的每一位都必须是数字
 */
public class RegexDemo01 {
    public static void main(String[] args) {
        System.out.println(checkPhoneNum("13534931778"));
        System.out.println(checkPhoneNum("23534931778"));
        System.out.println(checkPhoneNum("19534931778"));
        System.out.println(checkPhoneNum("13534a31778"));
    }

    //检测一个手机号字符串是否符合手机号的规则
    public static boolean checkPhoneNum(String phoneNum) {

        if (phoneNum.length() != 11) {//0.手机号字符串长度必须时11位
            return false;
        } else if (phoneNum.charAt(0) != '1') {//1.手机号的第一位必须是1
            return false;
        } else if (!(phoneNum.charAt(1) == '3'
                || phoneNum.charAt(1) == '4'
                || phoneNum.charAt(1) == '5'
                || phoneNum.charAt(1) == '7'
                || phoneNum.charAt(1) == '8')) {//2.手机号的第二位:3或4或5或7或8
            return false;
        } else {//3.手机号的剩余九位的每一位都必须是数字
            char[] chars = phoneNum.toCharArray();
            for (int i = 2; i < chars.length; i++) {
                if (!(chars[i] >= '0' && chars[i] <= '9')) {
                    return false;
                }
            }
        }

        return true;//既然代码能执行到这里，说明上面的if都不满足，也就是手机号的规则都能满足，
    }
}
